//
//  OZFileInZipInfo.h
//  Objective-Zip v. 1.0.5
//
//  Created by Gianluca Bertani on 27/12/09.
//  Copyright 2009-2017 Gianluca Bertani. All rights reserved.
//
//  Redistribution and use in source and binary forms, with or without 
//  modification, are permitted provided that the following conditions 
//  are met:
//
//  * Redistributions of source code must retain the above copyright notice, 
//    this list of conditions and the following disclaimer.
//  * Redistributions in binary form must reproduce the above copyright notice, 
//    this list of conditions and the following disclaimer in the documentation 
//    and/or other materials provided with the distribution.
//  * Neither the name of Gianluca Bertani nor the names of its contributors 
//    may be used to endorse or promote products derived from this software 
//    without specific prior written permission.
//
//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
//  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
//  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
//  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
//  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
//  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
//  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
//  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
//  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
//  POSSIBILITY OF SUCH DAMAGE.
//

#import <Foundation/Foundation.h>

#import "OZZipCompressionLevel.h"


/**
 @brief OZFileInZipInfo provides properties to inspect a file contained in
 the zip file.
 */
@interface OZFileInZipInfo : NSObject


#pragma mark -
#pragma mark Properties

/**
 @brief Name of the file in the zip file.
 <p>Note: in case the zip file has a directory structure, directory and
 subdirectory names are prepended to the file name, e.g. 
 "docs/html/index.html".</p>
 */
@property (nonatomic, readonly, nonnull) NSString *name;

/**
 @brief Length in bytes of the uncompressed file.
 */
@property (nonatomic, readonly) unsigned long long length;

/**
 @brief Compression level of the file. Can be:<ul>
 <li>OZZipCompressionLevelNone: not compressed (stored as is).
 <li>OZZipCompressionLevelFastest: minimum compression.
 <li>OZZipCompressionLevelBest: maximum compression
 <li>OZZipCompressionLevelDefault: intermediate compression.
 </ul>
 */
@property (nonatomic, readonly) OZZipCompressionLevel level;

/**
 @brief <code>YES</code> if the file has been encrypted during
 writing, <code>NO</code> if the file is not encrypted.
 */
@property (nonatomic, readonly) BOOL crypted;

/**
 @brief Length in bytes of the (compressed) file in the zip file.
 */
@property (nonatomic, readonly) unsigned long long size;

/**
 @brief Date/time the of file.
 */
@property (nonatomic, readonly, nonnull) NSDate *date;

/**
 @brief CRC32 of the file.
 */
@property (nonatomic, readonly) NSUInteger crc32;


@end
